package com.pureut.order.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pureut.common.core.web.domain.BaseEntity;
import com.pureut.order.domain.SubcontractingOrderMaterialDetail;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/***
 * 委外订单 入参
 * Author:C
 * Date:2022/12/02 9:46
 * @DESC
 */
@Data
public class SubcontractingOrderVo extends BaseEntity {

    /**
     * id
     */
    private long id;

    /**
     * 委外订单号
     */
    private String subcontractingOrderNum;

    /**
     * 关联单号
     */
    private String associatedDocNum;

    /**
     * 单据状态
     */
    private String status;

    /**
     * 物料id
     */
    private long materialId;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * 物料类型
     */
    private String materialType;

    /**
     * 委外合同编号
     */
    private String subcontractingContractNum;

    /**
     * 委外重量
     */
    private String subcontractingWeight;


    /**
     * 到货重量
     */
    private double arrivedWeight;

    /**
     * 退回重量
     */
    private double backWeight;

    /**
     * 需求时间
     */
    @NotNull(message = "需求时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date demandTime;

    /**
     * 创建时间（查询条件）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 创建时间（查询条件）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * BOM编码
     */
    @NotBlank(message = "BOM不能为空")
    private String bomCode;

    /**
     * 加工商id
     */
    private long converterId;

    /**
     * 合同url
     */
    private String contractUrl;

    /**
     * 加工商名称
     */
    private String converterName;

    /**
     * 关结原因
     */
    private String closeReason;

    /**
     * 委外类型
     */
    private int subcontractingType;

    /**
     * 物料明细列表
     */
    private List<SubcontractingOrderMaterialDetailVo> materialDetailList;

    /**
     * 厚度
     */
    private String thickness;

    /**
     * 备注
     */
    private String remark;
}
